//引入pinia
import { useTokenStore } from '@/stores'

// 设置页面白名单
const whiteList : String[] = [
	'/pages/login/index', //登录页面
]

//检查是否存在
const hasPermission = (url : string) => {
	//调用pinia中的token方法
	const tokenStore = useTokenStore()
	const accessToken : string = tokenStore.accessToken

	url = url.split('?')[0]
	// 在白名单中或有token，直接跳转
	if (whiteList.indexOf(url) !== -1 || accessToken) {
		return true
	}
	return false
}

//监听页面跳转
uni.addInterceptor('navigateTo', {
	// 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
	invoke(e : any) {
		// 解决页面重复跳转问题
		let pages = getCurrentPages()
		if (!pages.length) {
			return true
		}
		let nowPage = pages[pages.length - 1]
		if (e.url.indexOf(nowPage.route) !== -1) {
			return false
		}

		//如果不在白名单中
		if (!hasPermission(e.url)) {
			//提示登录
		}
	}
})